from qiniu import Auth, put_file
from config import settings

# 初始化七牛云认证
qiniu_auth = Auth(settings.QINIU_ACCESS_KEY, settings.QINIU_SECRET_KEY)

def upload_to_qiniu(file_path, key):
    """
    上传文件到七牛云
    :param file_path: 本地文件路径
    :param key: 文件在七牛云中的唯一标识（文件名）
    :return: 文件的外链URL
    """
    # 生成上传凭证
    token = qiniu_auth.upload_token(settings.QINIU_BUCKET_NAME, key)
    
    # 上传文件
    ret, info = put_file(token, key, file_path)
    print("上传结果:", ret)  # 打印上传结果
    print("上传信息:", info)  # 打印上传信息
    
    # 检查上传结果
    if info.status_code == 200:
        return f"http://{settings.QINIU_DOMAIN}/{key}"
    else:
        return None